"use strict";
var num_a;
num_a = 123;
function printStatus(data) {
    console.log(data);
}
printStatus(123);
printStatus("123");
function printGender(data) {
    console.log(data);
}
printGender("男");
printGender('女');
// 定义类型House，且House是Area和Address组成的交叉类型
var House = {
    height: 100,
    width: 100,
    num: 100,
    cell: 100,
    room: '100',
};
console.log(House);
House = {
    height: 100,
    width: 100,
    num: 100,
    cell: 100,
    room: '100',
};
console.log(House);
//9. ⼀个特殊情况
//    先来观察如下两段代码：
//    代码段1（正常）
//    在函数定义时，限制函数返回值为 void ，那么函数的返回值就必须是空。
function type_demo() {
    // 返回undefined合法
    return undefined;
    // 以下返回均不合法
    // return 100
    // return false
    // return null
    // return []
}
type_demo();
var f1 = function () {
    return 100; // 允许返回⾮空值
};
var f2 = function () { return 200; }; // 允许返回⾮空值
console.log(f2());
// if (f2()) {
// }
var f3 = function () {
};
var print_data;
print_data = function () { return 200; }; // 允许返回⾮空值
print_data = function () { return 200; }; // 允许返回⾮空值
print_data = function () { return 200; }; // 允许返回⾮空值
console.log(print_data());
// if (print_data()) {
// }
//为什么会这样？
//是为了确保如下代码成⽴，我们知道 Array.prototype.push 的返回值是⼀个数字，⽽ Array.prototype.forEach ⽅法期望其回调的返回类型是 void 。
var src = [1, 2, 3];
var dst = [0];
//遍历数组
// src.forEach((el) => dst.push(el))
//加工数组
// src.map((item) => { return item + 1 })
//筛选数组
// src.find((item) => { return item + 1 > 2 })
